﻿using System;
using System.Collections.Generic;
using System.Text;
using System.Web;
using System.Drawing;

namespace GEA_Controle_de_Processos.MasterPage
{
    [Serializable]
    public class MasterCache
    {
        public const string DIV_LOGIN = "<div class=\"divLogin\" />";
        public const string DIV_LOGOUT = "<div class=\"divLogout\" />";

        public static MasterCache Atual
        {
            get
            {
                MasterCache valorEmCache;

                valorEmCache = new MasterCache();
                return valorEmCache;
            }
        }
        public MasterCache()
        {
            var htmlMenu = new StringBuilder();
            htmlMenu.Append("<ul class=\"dropdown\">");
            ConstruirHtmlMenu(htmlMenu);
            htmlMenu.Append("</ul>");
            HtmlMenu = htmlMenu.ToString();
        }

        public int? Evo_Id { get; private set; }
        public string HtmlBreadCrumb { get; private set; }
        public string HtmlMenu { get; private set; }

        private const string templateItemMenu = "\n<li><a href=\"{0}\" title=\"{1}\" {2}>{3}</a>";
        private const string templateItemMenuNewWindow = "\n<li><a href=\"#\" onclick=\"javascript:window.open('{0}', '{1}', 'toolbar=no,location=no,directories=no,menubar=no,status=yes,scrollbars=1');\" target=\"_parent\" title=\"{1}\" {2}>{3}</a>";
        private const string abrindoMenuFilho = "\n<ul class=\"sub_menu\">";

        private static void TrataEventoMenu(string nome_menu ,StringBuilder html,bool possuifilhos, bool primeirachamda)
        {
            
                var evo_NomeIdentado = nome_menu;

                evo_NomeIdentado = HttpUtility.HtmlEncode(evo_NomeIdentado);
                var evo_Url = "~/Modulos/Vendas/CadastroFluxoForm.aspx";
                bool print = evo_Url.ToLower().Contains("javascript");
                evo_Url = (evo_Url.Trim());
                var evo_TextoMenu = HttpUtility.HtmlEncode(evo_NomeIdentado);
                var evo_ImagemMenuCss = HttpUtility.HtmlEncode("icon-16-user2");
                if (!String.IsNullOrEmpty(evo_ImagemMenuCss))
                {
                    evo_ImagemMenuCss = String.Concat("class=\"", evo_ImagemMenuCss, "\"");
                }

                //evo_ImagemMenuCss = String.Concat(evo_ImagemMenuCss, " onclick=\"javascript: window.print()\"");

                string templateLink = (false) ? templateItemMenuNewWindow : templateItemMenu;

                html.AppendFormat(templateLink, evo_Url, evo_TextoMenu, evo_ImagemMenuCss, evo_NomeIdentado);

                if (possuifilhos)
                    {
                        if (primeirachamda)
                           html.Append(abrindoMenuFilho);
                        else
                           html.Append("\n<ul>");
                    }

        }
        private static void ConstruirHtmlMenu(StringBuilder html)
        { 
            PrimMenu(html);
        }

        public static void PrimMenu(StringBuilder html)
        {
            string[] submenu = new string[10];
            submenu[0] = "Cadastro Clientes";
            submenu[1] = "Cadastro Funcionários";

            TrataEventoMenu("Cadastro", html, true, true);
            TrataEventoMenu("Cadastro Clientes", html, true, false);
            TrataEventoMenu("Cadastro Cli", html, false, false);
            html.Append("\n</ul>");
            TrataEventoMenu("Cadastro Funcionários", html, false, false);
            html.Append("\n</ul>");
            html.Append("\n</li>");
            TrataEventoMenu("Venda", html, true, true);
            //TrataEventoMenu(true,html,true, StringBuilder[] filhos)
            
        }
    }
}